import Dict from './Dict'
    import {
      mergeOptions
    } from './DictOptions'
    export default function(Vue, options) {
      mergeOptions(options)
      Vue.mixin({
        data() {
          if (this.$options.dicts === undefined || this.$options.dicts === null) {
            return {}
          }
          const dict = new Dict()
          dict.owner = this
          return {
            dict
          }
        },
        created() {
          if (!(this.dict instanceof Dict)) {
            return
          }
          options.onCreated && options.onCreated(this.dict)
          this.dict.init(this.$options.dicts).then(() => {
            options.onReady && options.onReady(this.dict)
            this.$nextTick(() => {
              this.$emit('dictReady', this.dict)
              if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) {
                this.$options.methods.onDictReady.call(this, this.dict)
              }
            })
          })
        },
      })
    }
